<?xml version="1.0" encoding="UTF-8"?>
<doc>
<title>语句和语句块</title>

<para>
<ptitle>语句和语句块</ptitle>
　语句和语句块是 TJS2 语法中非常重要的元素。<r/>
</para>

<para>
<ptitle>语句</ptitle>
　一个语句以 <kw>;</kw> (分号) 结束。可以是表达式后直接加分号，也可以是 if 等控制语句后加分号。<r/>
<example>
	a++;<r/>
	func1();<r/>
	return a+b;<r/>
	等等……<r/>
</example>
</para>

<para>
<ptitle>语句块</ptitle>
　语句块由多个语句组成，用<kw>{ }</kw>括起来表示。语句块中的语句按由上至下的顺序执行。<r/>
<example>
	{<r/>
		a++;<r/>
		b++;<r/>
	}<r/>
<r/>
	{<r/>
		var t=func1();<r/>
		func2(t);<r/>
		break;<r/>
	}<r/>
</example>
<r/>
　语句块后不需要加 ; (分号)。<r/>
<r/>
　此外，所有语句块均会创建变量的<kw>作用域</kw>。（译者：即在语句块中定义的变量仅在定义它的语句块中有效）<r/>
</para>

<para>
<ptitle>执行顺序</ptitle>
　在TJS里，在函数、类、属性之外的部分书写的语句将在脚本执行的时候被执行，函数、类、属性中的语句则在被调用的时候方会执行。<r/>
<example>
	var a; // 立刻执行<r/>
<r/>
	function test()<r/>
	{<r/>
		a+=10; // 被调用时才执行<r/>
	}<r/>
<r/>
	a+=30; // 立刻执行<r/>
</example>
<r/>
　更准确地说，类、函数、属性的定义在脚本执行的时候会先予以注册，之后，其他的脚本元素将按从头到尾的顺序执行，因此在同一个脚本块内，函数、类和属性可被后面的语句引用。<r/>
<example>
	test(); // 即使是在下面才定义的函数，只要在同一个脚本块内声明的都可以引用<r/>
<r/>
	function test()<r/>
	{<r/>
		inform("yah!");<r/>
	}<r/>
</example>
<r/>
　在不同脚本块之间调用函数，只要在调用时，目标函数已经被读取，就是可行的。
　此外，因为变量的声明是按照读取的顺序处理的，因而不能向后引用。<r/>
</para>

<para>
<ptitle>全局对象</ptitle>
　全局对象是特殊的对象，它们是在全局范围定义，有各自的变量、函数和属性的对象，可以使用 globle 关键字访问。<r/>
</para>

</doc>